Method and apparatus for expanded content tag sharing

ABSTRACT

Techniques for expanded content tag sharing include determining that a first user is associated with content provided by a different second user. Data is recorded that indicates the first user is authorized to associate a different third user with the content provided by the second user, without further input by the second user. In some embodiments, the data that indicates the content provided by the second user includes data that indicates a plurality of contents. Some techniques include determining a message received from a first user indicates a portion of content associated with the first user, and a second user. The portion of the content is rendered on an apparatus of the second user. The second user is prompted for associating, with the portion of the content, an item identifier, such as text or another user, for the portion of the content.

BACKGROUND

Service providers and device manufacturers (e.g., wireless, cellular,etc.) are continually challenged to deliver value and convenience toconsumers by, for example, providing compelling network services. Forexample, social network services allow users to share comments, WorldWide Web links, and images (such as from photographs) among subscriberswho have identified each other as friends. Photographs uploaded by onesubscriber (owner) can be tagged by the owner with subject matter textand names of friends that appear in the photographs. The friends arethen notified that they have been tagged in a photograph and can viewthe photograph on the home page of the owner. Comments by the visitorcan be added in a comments section and shared with others who alsocomment.

SOME EXAMPLE EMBODIMENTS

While suitable for many purposes, it is noted that tagging photographswith the names of multiple persons, especially when there are multiplephotographs in an album of related photographs, becomes tedious for theowner. As a consequence, one or more photographs are not tagged with allthe persons depicted in the photograph. This diminishes the ability ofthe service to notify subscribers of the photographs that depict them.Therefore, there is a need for an approach for expanded content tagsharing that does not suffer one or more deficiencies of the prior art.

According to one embodiment, a method comprises determining data thatassociates, on an apparatus, a first user with a content identifier,wherein the content identifier indicates content provided by a differentsecond user. The method also comprises causing, at least in part,actions that result in recording authorization data on the apparatus,wherein the authorization data indicates the first user is authorized toassociate a different third user with the content identifier, withoutfurther input by the second user.

According to another embodiment, a method comprises determining amessage received from an apparatus of a first user. The messagecomprises portion data that indicates a portion of content associatedwith the first user, and data that indicates a second user. The methodalso comprises causing, at least in part, actions that result inrendering the portion of the content on an apparatus of the second user,and prompting the second user for associating, with the portion data, anitem identifier, wherein the item identifier indicates an identifier forthe portion of the content.

According to another embodiment, a method comprises facilitating accessto at least one interface configured to allow access to at least oneservice. The at least one service is configured to determine data thatassociates, on an apparatus, a first user with a content identifier,wherein the content identifier indicates content provided by a differentsecond user. The at least one service is further configured to cause, atleast in part, actions that result in recording authorization data onthe apparatus, wherein the authorization data indicates the first useris authorized to associate a different third user with the contentidentifier, without further input by the second user.

According to another embodiment, a method comprises facilitating accessto at least one interface configured to allow access to at least oneservice. The at least one service is configured to determining a messageis received from an apparatus of a first user. The message comprisesportion data that indicates a portion of content associated with thefirst user, and data that indicates a second user. The at least oneservice is further configured to cause, at least in part, actions thatresult in rendering the portion of the content on an apparatus of thesecond user. The at least one service is further configured to cause, atleast in part, actions that result in prompting the second user forassociating, with the portion data, an item identifier, wherein the itemidentifier indicates an identifier for the portion of the content.

According to another embodiment, an apparatus comprising at least oneprocessor, and at least one memory including computer program code, theat least one memory and the computer program code configured to, withthe at least one processor, cause, at least in part, the apparatus todetermine data that associates, on an apparatus, a first user with acontent identifier, wherein the content identifier indicates contentprovided by a different second user. The apparatus is also caused tocause, at least in part, actions that result in recording authorizationdata on the apparatus, wherein the authorization data indicates thefirst user is authorized to associate a different third user with thecontent identifier, without further input by the second user.

According to another embodiment, an apparatus comprising at least oneprocessor, and at least one memory including computer program code, theat least one memory and the computer program code configured to, withthe at least one processor, cause, at least in part, the apparatus todetermine a message is received from an apparatus of a first user. Themessage comprises portion data that indicates a portion of contentassociated with the first user, and data that indicates a second user.The apparatus is also caused to cause, at least in part, actions thatresult in rendering the portion of the content on an apparatus of thesecond user. The apparatus is also caused to cause, at least in part,actions that result in prompting the second user for associating, withthe portion data, an item identifier, wherein the item identifierindicates an identifier for the portion of the content.

According to another embodiment, a computer-readable storage mediumcarrying one or more sequences of one or more instructions which, whenexecuted by one or more processors, cause, at least in part, anapparatus to determine data that associates a first user with a contentidentifier, wherein the content identifier indicates content provided bya different second user. The apparatus is also caused to cause, at leastin part, actions that result in recording authorization data, whereinthe authorization data indicates the first user is authorized toassociate a different third user with the content identifier, withoutfurther input by the second user.

According to another embodiment, a computer-readable storage mediumcarrying one or more sequences of one or more instructions which, whenexecuted by one or more processors, cause, at least in part, anapparatus to determine a message received from an apparatus of a firstuser. The message comprises portion data that indicates a portion ofcontent associated with the first user, and data that indicates a seconduser. The apparatus is also caused to cause, at least in part, actionsthat result in rendering the portion of the content on an apparatus ofthe second user. The apparatus is also caused to cause, at least inpart, actions that result in prompting the second user for associating,with the portion data, an item identifier, wherein the item identifierindicates an identifier for the portion of the content.

According to another embodiment, an apparatus comprises means fordetermining data that associates, on an apparatus, a first user with acontent identifier, wherein the content identifier indicates contentprovided by a different second user. The apparatus also comprises meansfor recording authorization data on the apparatus, wherein theauthorization data indicates the first user is authorized to associate adifferent third user with the content identifier, without further inputby the second user.

According to another embodiment, an apparatus comprises means fordetermining a message received from an apparatus of a first user,wherein the message comprises portion data that indicates a portion ofcontent associated with the first user, and data that indicates a seconduser. The apparatus also comprises means for rendering the portion ofthe content on an apparatus of the second user. The apparatus alsocomprises means for prompting the second user for associating, with theportion data, an item identifier, wherein the item identifier indicatesan identifier for the portion of the content.

Still other aspects, features, and advantages of the invention arereadily apparent from the following detailed description, simply byillustrating a number of particular embodiments and implementations,including the best mode contemplated for carrying out the invention. Theinvention is also capable of other and different embodiments, and itsseveral details can be modified in various obvious respects, all withoutdeparting from the spirit and scope of the invention. Accordingly, thedrawings and description are to be regarded as illustrative in nature,and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention are illustrated by way of example, andnot by way of limitation, in the figures of the accompanying drawings:

FIG. 1 is a diagram of a system capable of expanded content tag sharingaccording to one embodiment;

FIG. 2A is a diagram of a data structure for a user profile, accordingto an embodiment;

FIG. 2B is a diagram of a data structure for content metadata, accordingto an embodiment;

FIG. 3A is a diagram of a user interface for grouping content providedby a user, according to an embodiment;

FIG. 3B is a diagram of a user interface for prompting the tagging of atleast a portion of content with one or more contacts of a user,according to an embodiment;

FIG. 3C is a diagram of a user interface for tagging at least a portionof content with one or more contacts of a user, according to anotherembodiment;

FIG. 3D is a diagram of a user interface for tagging multiple contents,according to an embodiment;

FIG. 4A is a diagram of a user interface for distributing an unknownitem in content, according to an embodiment;

FIG. 4B is a diagram of a user interface for prompting tagging of anunknown item in content, according to an embodiment;

FIG. 4C is a diagram of a user interface for tagging of an unknown itemin content, according to an embodiment;

FIG. 5A and FIG. 5B comprise a flowchart of a process for expandedcontent tag sharing, according to one embodiment;

FIG. 6 is a flowchart of a process for sharing the tagging of an unknownitem, according to one embodiment;

FIG. 7 is a diagram of hardware that can be used to implement anembodiment of the invention;

FIG. 8 is a diagram of a chip set that can be used to implement anembodiment of the invention; and

FIG. 9 is a diagram of a mobile terminal (e.g., handset) that can beused to implement an embodiment of the invention.

DESCRIPTION OF SOME EMBODIMENTS

Examples of a method, apparatus, and computer program for expandedcontent tag sharing are disclosed. In the following description, for thepurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the embodiments of theinvention. It is apparent, however, to one skilled in the art that theembodiments of the invention may be practiced without these specificdetails or with an equivalent arrangement. In other instances,well-known structures and devices are shown in block diagram form inorder to avoid unnecessarily obscuring the embodiments of the invention.

As used herein, the term content refers to digital data for presentationto a human user and includes, for example, digital sound, songs, digitalimages, digital games, digital maps, point of interest information,digital videos, such as music videos, news clips and theatrical videos,advertisements, electronic books, presentations, program files orobjects, any other digital media or content, or any combination thereof.The terms presenting and rendering each indicate any method forpresenting the content to a human user, including playing audio or musicthrough speakers, displaying images on a screen or in a projection or ontangible media such as photographic or plain paper, showing videos on asuitable display device with sound, graphing game or map data, or anyother term of art for presentation, or any combination thereof.

As used herein, the term tag refers to one or more data fields in ametadata data structure associated with content on a network device.Each tag data field is for holding data that identifies an item includedin at least a portion of the content. An item is a person or thing oractivity or other concept that is evident to at least one human userwhen the content is rendered for presentation to that human. Taggingrefers to inserting data to occupy one or more tag data fields in themetadata data structure, or adding a tag data field to the metadata datastructure, or some combination.

Although various embodiments are described with respect to photographsuploaded to a social networking service, it is contemplated that theapproach described herein may be used with other types of content,shared directly among peers, or indirectly through a network service,such as a music store, a social networking service, and a file sharingservice, among others.

FIG. 1 is a diagram of a system 100 capable of expanded content tagsharing according to one embodiment. When content, such as a photograph,is added by a user at user equipment (e.g., UE 101 a), it is associatedwith metadata that describes the content, such as name, size and formatof one or more files that hold the content, the device that captured orgenerated the content, the time and place where the content wasgenerated. The content may be shared with other users by sending thecontent to one or more contacts of the user, or by uploading to asharing service, such as a social networking service. However, thesubject of the content or one or more persons whose voices or otherlikenesses are included in the content are typically added to thecontent by the human user who generated the content. This can betedious, especially for a group of contents, e.g., multiple photographstaken at an event, such as a party or trip. As a consequence, one ormore contents are not tagged with all identifiers for items included inthe content, such as subject matter, persons, things, activities. Thisdiminishes the ability of a service to notify users about the contentsthat are relevant to those users.

To address this problem, the system 100 of FIG. 1 introduces thecapability to share the tagging of content beyond what is currentlyavailable. In some embodiments, the system 100 authorizes any usertagged in metadata for one or more contents in a group to further tagthose contents. As a result, the number of authorized users who can tagthe contents grows, sharing the load of tagging the contents. Anadvantage of authorizing tagged persons to further tag the content is todistribute the load of tagging content, thus increasing the probabilitythat contents are more completely tagged, and increase the ability of aservice to notify users about the contents that are relevant to thoseusers. In some embodiments, the system 100 allows a user, who isauthorized to tag the content, to indicate a portion of the content thatincludes an unknown item, such as an unknown person or object. At leastthat portion of the content is sent to one or more contacts, such asothers already tagged in the content, to identify the item. An advantageof forwarding portions of content with an unknown item to a contact isto increase the probability that contents are more completely tagged,and, thus, to increase the ability of a service to notify users aboutthe contents that are relevant to those users.

For example, in some embodiments, the system 100 determines that a firstuser is associated with content provided by a different second user(e.g., the owner of the content) by tags indicting the first user. Thesystem 100 then indicates the first user is authorized to associate adifferent third user with the content provided by the second user,without further input by the second user. This can be done either on theuser equipment or by a remote network service, such as a social networkservice. In some embodiments, the system 100 determines a message isreceived from an apparatus of a first user. The message indicates aportion of content associated with the first user and data thatindicates a second user, who is requested to identify an item in theportion of the content. In these embodiments, the system 100 renders theportion of the content on an apparatus of the second user, and promptsthe second user for associating an identifier for the portion of thecontent with the portion of the content. This can be done either on thetwo user equipment or by a remote network service, such as a socialnetwork service.

As shown in FIG. 1, the system 100 comprises user equipment (UE) 101 aand UE 101 b, collectively referenced hereinafter as UE 101, havingconnectivity to one or more network services 110 a through 110 n andsocial network service 120, collectively referenced hereinafter asnetwork services 110, via a communication network 105. By way ofexample, the communication network 105 of system 100 includes one ormore networks such as a data network (not shown), a wireless network(not shown), a telephony network (not shown), or any combinationthereof. It is contemplated that the data network may be any local areanetwork (LAN), metropolitan area network (MAN), wide area network (WAN),a public data network (e.g., the Internet), short range wirelessnetwork, or any other suitable packet-switched network, such as acommercially owned, proprietary packet-switched network, e.g., aproprietary cable or fiber-optic network, and the like, or anycombination thereof. In addition, the wireless network may be, forexample, a cellular network and may employ various technologiesincluding enhanced data rates for global evolution (EDGE), generalpacket radio service (GARS), global system for mobile communications(GSM), Internet protocol multimedia subsystem (IMS), universal mobiletelecommunications system (UMTS), etc., as well as any other suitablewireless medium, e.g., worldwide interoperability for microwave access(WiMAX), Long Term Evolution (LTE) networks, code division multipleaccess (CDMA), wideband code division multiple access (WCDMA), wirelessfidelity (WiFi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP)data casting, satellite, mobile ad-hoc network (MANET), and the like, orany combination thereof.

The UE 101 are any type of mobile terminal, fixed terminal, or portableterminal including a mobile handset, station, unit, device, multimediacomputer, multimedia tablet, Internet node, communicator, desktopcomputer, laptop computer, Personal Digital Assistants (PDAs),audio/video player, digital camera/camcorder, positioning device,television receiver, radio broadcast receiver, electronic book device,game device, or any combination thereof. It is also contemplated thatthe UE 101 can support any type of interface to the user (such as“wearable” circuitry, etc.). An example mobile terminal is described inmore detail below with reference to FIG. 9.

In the illustrated embodiment, one or more processes execute on each UE101, with at least UE 101 a including a content generator 130, such as acamera, video recorder, audio recorder, game module, drawing module,image downloading and editing module, or other module. Many suchprocesses and modules are well known in the art. The content generator130 generates content 132 with at least some content metadata 134. UE101 b belongs to a different user with whom the content 132 generated atUE 101 a is to be shared. In the illustrated embodiment, each UE 101also includes a context module 109 that determines at least some contextinformation that is included in the metadata 134 for the contentgenerated locally, such as time, location, and application programscurrently running on the UE 101. For example, each context module 109includes a positioning system module 103 for determining the currentposition of a mobile device. Each UE 101 also includes a graphical userinterface (GUI) module 150 for tagging content generated locally orshared, as described in more detail below. This module 150 is calledhereinafter a tag GUI module 150.

By way of example, the UE 101, and network services 110, includingsocial network service 120, communicate with each other and othercomponents of the communication network 105 using well known, new orstill developing protocols. In this context, a protocol includes a setof rules defining how the network nodes within the communication network105 interact with each other based on information sent over thecommunication links. The protocols are effective at different layers ofoperation within each node, from generating and receiving physicalsignals of various types, to selecting a link for transferring thosesignals, to the format of information indicated by those signals, toidentifying which software application executing on a computer systemsends or receives the information, The conceptually different layers ofprotocols for exchanging information over a network are described in theOpen Systems Interconnection (OSI) Reference Model.

Communications between the network nodes are typically effected byexchanging discrete packets of data. Each packet typically comprises (1)header information associated with a particular protocol, and (2)payload information that follows the header information and containsinformation that may be processed independently of that particularprotocol. Often, the data in the payload for the particular protocolincludes a header and payload for a different protocol associated with adifferent, higher layer of the OSI Reference Model. The higher layerprotocol is said to be encapsulated in the lower layer protocol. Theheaders included in a packet traversing multiple heterogeneous networks,such as the Internet, typically include a physical (layer 1) header, adata-link (layer 2) header, an internetwork (layer 3) header and atransport (layer 4) header, and various application headers (layer 5,layer 6 and layer 7) as defined by the OSI Reference Model.

The client-server model of computer process interaction is widely knownand used. According to the client-server model, a client process sends amessage including a request to a server process, and the server processresponds by providing a service. The server process may also return amessage with a response to the client process. Often the client processand server process execute on different computer devices, called hosts,and communicate via a network using one or more protocols for networkcommunications. The term “server” is conventionally used to refer to theprocess that provides the service, or the host computer on which theprocess operates. Similarly, the term “client” is conventionally used torefer to the process that makes the request, or the host computer onwhich the process operates. As used herein, the terms “client” and“server” refer to the processes, rather than the host computers, unlessotherwise clear from the context. In addition, the process performed bya server can be broken up to run as multiple processes on multiple hosts(sometimes called tiers) for reasons that include reliability,scalability, and redundancy, among others.

A well known client process available on most nodes connected to acommunications network is a World Wide Web client (called a “webbrowser,” or simply “browser”) that interacts through messages formattedaccording to the hypertext transfer protocol (HTTP) with any of a largenumber of servers called World Wide Web servers that provide web pages.(Web pages are typically formatted according to the hypertext markuplanguage, HTML). In the illustrated embodiment, each UE 101 includes abrowser 107 to serve as a client process for one or more services 110.In some embodiments, the tag GUI module 150 is generated in a Web pageby the network service 110, such as social network service 120, and isincluded within the browser 107. In some embodiments, the tag GUI module150 is a client process of another server, such as a client process ofextended content tag sharing module 160. In some embodiments, the tagGUI module is not a client process but a standalone process thatinteracts with similar processes, called peers, on other UE 101. Forexample, in some embodiments, the tag GUI module 150 on UE 101 acommunicates with a peer tag GUI module 150 on UE 101 b. Similarly, insome embodiments, the context module 109 is a client of a context serveramong network services 110. In some embodiments, the content generator130 is a client of a content generation server among network services110.

The network services 110 are remotely located in some embodiments. Eachnetwork service 110 facilitates access to at least one interfaceconfigured to allow access to at least one service. In some embodiments,one or more of services 110 grant access rights to allow a user toaccess the same or different service. Many of the network services 110are servers that interact with one or more clients on UE 101, such asbrowser 107 or a tag GUI module 150 performing as a client. The socialnetwork service 120 is a server that maintains a user profiles datastructure 122 with data for each subscriber and contacts for thatsubscriber, and interacts with a standard browser as a client on UE 101.The user profiles data structure 122 is described in more detail belowwith reference to FIG. 2A.

Although services, processes, modules and data structures are depictedin FIG. 1 as integral units arranged in a particular way for purposes ofillustration, in other embodiments, one or more services, processes,modules, or data structures, or portions thereof, are arranged in adifferent manner on the same or different one or more nodes of network105. It is contemplated that the functions of these components may becombined in one or more components or performed by other components ofequivalent functionality.

FIG. 2A is a diagram of a data structure 200 for a user profile,according to an embodiment. The user profiles data structure 122includes a user profile, such as user profile data structure 200, foreach user who subscribes to the social network service. The user profiledata structure 200 includes a user identifier (ID) field, a userinformation field 204, a contacts list field 206, groups field 208, andone or more user content fields 210, as indicated by ellipsis.

The user ID field 202 holds data that indicates a unique subscriber tothe social network service. For example, the user ID field holds datathat indicates a social network name (e.g., “FastFreddy”), or an actualfirst or last name and number, or a electronic mail (email) address, ora Mobile Subscriber Integrated Services Digital Network Number (MSISDN,which is a cell telephone number) or some other identifier defined by anetwork service, such as an International Mobile Subscriber Identity(IMSI) identifier, a unique 15-digit code used to identify an individualuser on a global system for mobile communications (GSM) network. An IMSIvalue is typically stored on a Subscriber Identity Module (SIM card), adevice used to store information in many mobile phones, especially foradvanced features.

The user information field 204 holds other data for the subscriber, suchas full name, postal address, account number, email address, birth date,education, employment, relationship status, among many others that asubscriber may choose to share or withhold from other subscribers to theservice, alone or in any combination.

The contacts list field 206 holds data that indicates any othersubscribers with whom the user identified in field 202 sharesinformation, such as the user IDs of those other users, each user IDserving as a key to a particular user profiles from which otherinformation can be determined. In some embodiments, the contacts listgroups the contacts into various categories, such as friends,colleagues, clients and acquaintances, with which different levels ofinformation are shared.

The groups field 208 holds data that indicates any groups to which theuser identified in field 202 has joined. For example, social groups areformed for different professions, different geographic areas, differentpolitical or religious views, fans of different celebrities or sportsteams, among others. A subscriber is permitted to join one or more ofthese groups. The groups joined are listed in groups field 208.

The user content field 210 holds data that indicates some contentuploaded to the social network service for sharing among one or morecategories of the contacts listed in field 206. The user content field210 includes a content identifier (ID) field 212, a pointer 214 to thenext content in an album of related contents, a content field 216 and ametadata field 220. The content is thus available to the networkservice, such as the social network service 120, for sharing with one ormore subscribers in the contacts list field 206. In some embodiments, aversion of the user contents field 210 is stored in the content datastructure 132 on the UE 101 (e.g., on UE 101 a), from which the contentcan be sent to a network service 110 or to the tag GUI module 150 onanother UE 101 (e.g., on UE 101 b).

The content ID field 212 holds data that uniquely identifies the contentamong the content associated with the user identified in field 202, suchas a timestamp and content type (audio, image, video, game, etc.). Thepointer 214 holds data that indicates the next content in an album ofrelated content e.g., contents generated or uploaded at closely relatedtimes, by the same user or by multiple users who appear in the user'scontacts list and are located close geographically. The other contentsare identified in field 214 by their corresponding content ID values.The content field 216 holds data that indicates the content, e.g., apointer to a field, memory location or one or more file with thecontent, or the actual coded values that are used to render the contentfor presentation to a human. The metadata field holds data thatindicates information about the content, e.g., to determine how topresent the content or the relevance of the content to one or more othersubscribers or contacts of the user identified in field 202, or somecombination. In some embodiments, metadata field 220 holds data thatpoints to a separate one or more files where the metadata are actuallystored.

FIG. 2B is a diagram of a data structure 221 for content metadata,according to an embodiment. The content metadata data structure 221 is aparticular embodiment of field 220 in the user content field 210. Thecontent metadata data structure 221 includes a content capture devicefield 222, content characteristics field 224, a content capturedate/time locations field 226, an owner metadata field 230 and one ormore tagged contact metadata fields 250 indicated by ellipsis. Thetagged contact metadata fields 250 are means to achieve the advantage ofexpanding the metadata and tagging of content, so that a system can moreaccurately notify subscribers of relevant content.

The content capture device field 222 holds data that indicates a device,if any, used to capture the content, such as a digital cameramanufacturer name and model number and software used to interface withthe UE 101. Any manner may be used indicate such information, such asone or more fields of the exchangeable image file format (EXIF) or otherdigital media formats. If the content was generated entirely insoftware, field 222 indicates the software used to generate the content.The content characteristics field 224 holds data that indicates how theparticular content was generated from the device indicated in field 222.For example, the orientation of an image, the spatial and temporalspacing of picture elements (pixels), images or audio pressure series,the format for coding the content, the type of data compression, thefocal length of any lens, the lighting source, the exposure time, etc.,as appropriate for the type of content.

The content capture date/time location field 226 holds data thatindicates the date and time of capturing or generating the image orstarting or ending the audio or video stream, and the location where thecontent was generated, if available. The data in this field provides atime and place context for the content.

The owner metadata field 230 holds metadata provided by the user whogenerated the content, e.g., the user of UE 101 a who took a picture orrecorded sounds with the camera or microphone on the cell phone of theuser. In the illustrated embodiment, the owner metadata field 230includes an owner identifier (ID) field 232, a content album identifier(ID) field 234, one or more text fields 236, a social network groupsfield 238 and one or more tagged contact fields 240 indicted byellipsis.

The owner ID field 232 holds data that indicates the user who generatedthe content described by this metadata, e.g., using an identifier infield 202. This field is especially useful when the metadata resides ina user content field 210 outside a user profile data structure 200,e.g., in content data structure 132 or when delivered to a differentdevice, e.g. UE 101 b. The field 232 is a means to achieve the advantageof determining an owner when the content is sent outside a user profile.

The content album ID field 234 holds data that uniquely identifies analbum of multiple contents that are related and might be tagged withsimilar information, e.g., contents generated or uploaded at closelyrelated times, by the same user or by multiple users who appear in theuser's contacts list and are located close geographically. Any album IDmay be used; in various embodiments, an album ID is a sequence numbergenerated by the user equipment, or the network service, or a nameprovided by the user. In some embodiments, the pointer in field 214,described above is used instead of the album ID field to associaterelated contents, and album ID field 234 is omitted. The album ID fieldis an example means to achieve the advantage of associating relatedcontents.

The text field 236 holds data input by the owner (e.g., by voice ortyped text) to describe the subject matter of the content or persons whoare not contacts within the network service, such as the social networkservice. In some embodiments, the text field 236 includes a contentportion field 237 to indicate that the text applies to a portion of thecontent rather than to the entire content. In some of these embodiments,multiple text fields 236 are included in the owner metadata field 230,one text field for each different portion of the content being tagged.

The social network groups field 238 holds data that indicates any socialnetwork groups the members of which would be interested in the content.Any method may be used to determine the groups indicated by the data infield 238. For example, in some embodiments, the owner selects thegroups from a pull down menu of groups to which the owner belongs. Insome embodiments, the group is inferred from the context information,e.g., by another member of the group being in the vicinity of the ownerat the time the content was generated.

The tagged contact field 240 holds data that indicates a contact fromthe owner's contact list in field 206 who has been identified by theowner as represented in the content, by voice or image or otherlikeness. For example, the user ID of the contact is indicated in thecontact ID field 242 in the tagged contact field 240. In someembodiments each tagged contact is automatically authorized to furthertag the content. All authorized contacts must trace their authority backto the owner. The tagged contact fields 240 are an example means toachieve the advantage of determining that the owner has grantedauthority to the contacts listed.

In some embodiments, not all tagged contents are authorized to furthertag the content. In these embodiments the tagged contact field 240includes an authorized contact flag field 241 which holds dataindicating one value for an authorized tagged contact, and a differentvalue for a contact who is not authorized to further tag the content.

In some embodiments, the tagged contact is identified not only with thecontent but with a particular portion of the content. In suchembodiments, the tagged contact field 242 includes both the contact IDfield 242 and a content portion field 244. The content portion field 244holds data that indicates a portion of the content. Any method may beused to indicate the portion, such as a start and stop time of an audioor video recording, or a center pixel and size of an area of an image(default size or specified size), or coordinates of an upper left pixeland lower right pixels that define a rectangle that encompasses theportion. Further contacts tagged by the owner are indicated insubsequent tagged contact fields 240 indicated by ellipsis.

According to some embodiments, one or more (or all) contacts identifiedin a contact ID field 242 are authorized to further tag the content withtext or social network groups or additional contacts. Some or all ofthose additional contacts also become authorized to further tag thecontent. Thus the population of authorized contacts can growsufficiently to distribute the load of tagging contact.

The metadata produced by such authorized contacts are presented intagged contact metadata field 250 and others indicated by ellipsis. Thetagged contact metadata field 250 includes a contact ID field 252, atext field 256, a social network groups field 258 and one or more taggedcontact fields 260. The contact ID field 252 holds data that indicates acontact different from the owner. In some embodiments, the contact IDfield 252 holds data that indicates a contact who is also different fromany preceding tagged contact metadata field 250 contact ID field 252.

The text field 256 holds data input by the authorized contact identifiedin field 252 (e.g., by voice or typed text) to describe the subjectmatter of the content or persons who are not contacts within the networkservice, such as the social network service. In some embodiments, thetext field 256 includes a content portion field 257 to indicate that thetext applies to a portion of the content rather than to the entirecontent. In some of these embodiments, multiple text fields 256 areincluded in the tagged contact metadata field 250, one text field foreach different portion of the content being tagged.

The social network groups field 258 holds data that indicates any socialnetwork groups to which the authorized contact belongs, the members ofwhich might be interested in the content. Any method may be used todetermine the groups indicated by the data in field 258. For example, insome embodiments, the authorized contact selects the groups from a pulldown menu of groups to which the authorized contact belongs. In someembodiments, the group is inferred from the context information, e.g.,by another member of the group being in the vicinity of the authorizedcontact at the time the content was generated.

The tagged contact field 260 holds data that indicates a contact fromthe authorized contact's contact list (in the authorized contact's userprofile data structure, not shown) who has been identified by theauthorized contact as represented in the content, by voice or image orother likeness. For example the user ID of the new contact is indicatedin the contact ID field 262 in the tagged contact field 260. In someembodiments in which not all tagged contacts are authorized to furthertag the content, an authorized contact flag field 261 is included, asdescribed above for field 241. In some embodiments, the tagged contactis identified not only with the content but with a particular portion ofthe content. In such embodiments, the tagged contact field 262 includesboth the contact ID field 262 and a content portion field 264. Thecontent portion field 264 holds data that indicates a portion of thecontent. Further contacts tagged by the authorized contact, if any, areindicated in subsequent tagged contact fields 240 represented byellipsis.

According to some embodiments, any contact identified in a contact IDfield 262 is also authorized to further tag the content with text orsocial network groups or additional contacts. The metadata produced bysuch authorized contacts are presented in tagged contact metadata fields250 indicated by ellipsis. In some embodiments, only some taggedcontacts are authorized to add further tags. Those contacts aredistinguished by a value in the authorized contact flag fields 241, 261.In embodiments where all tagged contacts are authorized to further tagthe content, one or both of the authorized contact flag fields 241 and261 are omitted.

Although data structures and fields are shown in FIG. 2A and FIG. 2B asintegral blocks in a particular order for purposes of illustration, inother embodiments, one or more data structures or fields, or portionsthereof, are arranged in a different order or omitted, or held in one ormore databases, or spread over one or more nodes connected to acommunications network, such as network 105, or changed in somecombination of ways.

As described in more detail below, these structures increase thevisibility of a particular image, or other content, by introducing apropagation measure based on the available tags. The tags come from thetagging operations of different users, and every time a new person istagged out in an image, the image is shared to him/her as well, and thenthis person is eligible for further tagging on the image. By this meansan image or the whole album is incrementally tagged and shared. Anadvantage of such embodiments is that the more an image, or othercontent, is tagged, the more access is granted, and the more correlatedpeople are able to see and further tag the image or other content. As aconsequence, more and more information is accumulated about the image orother content, and the more likely the content is delivered to theinterested users.

Furthermore, by associating contents in an album, the tagging of othercontents in the album is accomplished simultaneously, in someembodiments. For example, often a set of images are taken atapproximately the same time, and people would like to share them alltogether in an album. So, in some embodiments, when some people havebeen tagged for particular content, the same people are tagged in theremaining images in the album. In some embodiments, if one person hasbeen tagged in one of the contents in an album, that person is alsotagged in all the other contents in the album. Thus the tagging of thisperson is shared among the pictures in the album, even though thatperson has not been manually marked in every picture in the album.

FIG. 3A is a diagram of a user interface 300 for grouping contentprovided by a user, according to an embodiment. In the illustratedembodiments, the user interfaces are graphical user interfaces (GUIs),depicting graphical components with which a human can interact, as iswell known in the art. However, in other embodiments, other userinterfaces may be used, such as an audio interface with audio promptsand spoken responses converted to text. In GUI 300, and others depictedin the following figures, a user indicates a portion of the screendisplaying the graphical components and elements, either with a cursormoved by a separate pointing device, or by touching a touch screen asthe pointing device. For convenience, the use of a cursor in response toa pointing device is described, but it is understood in some embodimentsthat a cursor is omitted and a user touches directly a part of thescreen to interact with a particular graphical element or othercomponent.

The GUI 300 is displayed on UE 101 by tag GUI module 150. In someembodiments tag GUI module 150 operates within browser 107 in responseto HTTP messages from extended content tag sharing module 160 on socialnetwork service 120 and each GUI is a different HTML page received inthe HTTP messages. The GUI 300 includes a display area 310 where a usercan determine content files on the UE 101 to share, e.g., by uploadingto social network service 120. The display area 310 includes prompt textinviting the owner to indicate which content files are to be shared,such as the illustrated text “Content files to upload to social network”for embodiments that do the sharing of content through a social network120.

The display area 310 includes file list area 320 in which content fileson the UE 101 are listed, e.g., by file name as depicted. File names arelisted in file name areas 322 a through 322 e. To view any additionalfile names, a scroll bar 326 is included which can be operated, as iswell known, to cause the list to scroll up or down and bring other filename areas into view. Associated with each file name area is a radiobutton 324 that can be selected with a pointing device operated by auser, as is well known in the art. Any file name can be selected, asindicated by a radio button filled with a solid circle, or become orremain unselected, as indicated by a hollow radio button. For purposesof illustration file list area 320 shows file name 322 b, file name 322c and file name 322 e have been selected to be shared.

The display area 310 includes buttons 312, 314, 316, 317 and 318 whichcan be selected by a pointing device operated by a user, as is wellknown in the art. When activated, select all button 312 causes all thefile names to be selected; and de-select all button 314 causes all filenames to be unselected. When activated, toggle selection button 316causes all the currently selected file names to become unselected andall currently unselected file names to be selected. When activated, theupload button causes the selected files to be stored for sharing, suchas being uploaded to the user profile of the social network service 120.When activated, the tag button 318 causes the tag GUI 150 to display thenext GUI screen, where a user can enter information to tag one or moreof the selected content files, so that data is added to the metadata forone or more of the selected files.

FIG. 3B is a diagram of a user interface 330 for prompting the taggingof at least a portion of content with one or more contacts of a user,according to an embodiment. The GUI 330 is displayed on UE 101 by tagGUI module 150, as described above for GUI 300. The GUI 330 includes arendered content area 332, a text tagging area including an add textbutton 337 and a text box 338, and a contact tagging area 340. The GUI330 also includes a tag all button 348 a and a suggest files button 348b.

The rendered content area 332 renders the content, such as an image, avideo clip, an audio clip, a game, etc, as appropriate for the content.For example, video and audio are rendered with play, pause, reverse,fast forward and stop buttons (not shown) in area 332. For purposes ofillustration, it is assumed that the content is a photograph of choirpractice that includes a musical director, three singers in a front rowand a helmeted person in a back row. This image is presented in renderedcontent area 332.

In some embodiments, a portion of the content is indicated, e.g., toassociate a tag with a portion of the image rather than the entireimage. In such embodiments, a portion is indicated around a pointingdevice, e.g., a portion within dashed oval 335 centered on curser 334.In an audio or video file, a portion may include a time period on atimeline (not shown) displayed with the play and pause buttons in therendered content area 332. The size of the portion can be changed, e.g.,by dragging the cursor while depressing a button on the pointing device,or by touching a touch screen with two fingers and moving the fingersapart to enlarge the portion or together to reduce the portion. In someembodiments, a default size is used. In some embodiments, the portion335 is fixed in location where the pointing device is last activatedwithin the rendered content area, e.g., where the cursor 334 is lastpositioned when a pointing device button is pressed, or where a userlast touched the screen within the rendered content area 332.

The text box 338 is used to enter text, as is well known in the art,e.g., using keys on a keypad to indicate letters, spaces and punctuationmarks. The add text button 337 is activated by a user to tag the contentwith the text in text box 338, e.g., to store the text in text field 236of metadata data structure 221 if the user is the owner of the content,or in text field 256 of data structure 221 otherwise. In someembodiments, the text is associated with the portion 335 of the contentinstead of the entire content.

The contact tagging area 340 includes an add tag button 342 a and aremove tag button 342 b and a toggle authorize button 342 c as well as alabel indicating that the area presents a list of contacts tagged to thecontent presented in rendered content area 332. In the illustratedembodiment the label is the phrase “list of tagged contacts.”

When the add tag button 342 a is activated, as indicated by the dottedoutline, a select contact display area 344 is presented. The selectcontact display area 344 includes a prompt bar 347 a and a contact listarea 347 b. The prompt bar 347 a presents text to prompt the user toselect a contact, such as the expression “select contact” depicted inFIG. 3B. A list of the user's contacts from which to select, e.g., fromthe contact list field 206 of the user profile data structure 200 or alocal source on the UE 101 a, is presented in the contact list area 347b. One of the listed contacts is highlighted as indicated by the dottedrectangle 346. The highlighted area can be moved up or down on the listby using a pointing device, such as cursor 334, to activate up or downcontrol areas 345 a and 345 b, respectively, as is well known in theart.

When the highlighted tag is the correct one, the choice is accepted,e.g., by activating the add tag button again. The highlighted contact isassociated with the content, e.g., by being added to field 242 in themetadata data structure 221 if the user is the owner of the content, orby being added to field 262 in the metadata data structure 221otherwise. If some embodiments, the portion 335 of the rendered contentis also associated with the tag, e.g., by being added to field 244 inthe metadata data structure 221 if the user is the owner of the content,or by being added to field 264 in the metadata data structure 221otherwise.

The process can be repeated to tag the content with all the contactsthat are encompassed by the content. The selected contacts are listed indisplay area 340. A contact tag can be removed in a manner similar toadding a tag. The remove tag button is activated; the contact to removeis highlighted; and the remove tag is activated again.

In some embodiments, not all tagged contacts are authorized to furthertag the content. In such embodiments, the authorization of each contactis determined by user input. For example, as each contact is added tothe list of tagged contacts, the contact is marked as authorized, e.g.,with a checkmark in an authorized column (not shown) in display area340. This default authorization is an example means to achieve theadvantage of encouraging distributed shared tagging. However, the userhas the option to change the mark to unauthorized, e.g., removing thecheck mark in the authorized column, by highlighting the particularcontact and activating the toggle authorize button 342 c. The user alsoeasily changes back by pressing the toggle authorize button when anunauthorized contact is highlighted in the display area 340.

In some embodiments, content or a portion of the content can receivespecial handling by using a special tag. For example, the “don't know”tag can be used to label a portion of the content which the user seekshelp in identifying, as described in more detail below with reference toFIG. 4A and FIG. 4B and FIG. 4C. Thus “don't know” is included in theoptions listed in the contacts list display area 344, and can beselected.

The tag all button 348 a is activated by the user to tag all thecontents in the album with the same tags as the current content. Thesuggest files button 348 b is activated by the user to have the tag GUIsuggest content files that should receive the same tags based oncontext. The text and contact tags in fields 236, 242, 256 and 262 ofthe metadata data structure 221 for the current content (presented inrendered content area 332) are copied to the corresponding fields of themetadata data structures 221 of the other contents selected. In someembodiments, the data in the content portion fields 244 and 264 are notcopied, because it is unlikely that the same persons appear in the samepositions in the other content files. The suggestion operation isdescribed in more detail below with reference to FIG. 3D.

FIG. 3C is a diagram of a user interface 350 for tagging at least aportion of content with one or more contacts of a user, according toanother embodiment. The GUI 350 is displayed on UE 101 by tag GUI module150, as described above for GUI 300. The rendered content area 332, addtext button 337, text box 338, contact tagging area 340 with add tagbutton 342 a and remove tag button 342 b, tag all button 348 a andsuggest files button 348 b are as described above.

When the cursor 334 is place inside a portion of the content, thecontact associated with that portion, if any, is displayed. For example,when the cursor 334 is placed over the music director as depicted inFIG. 3C, a text box appears with the name of the contact, e.g., contactB. If contacts are not associated with corresponding portions of thecontent, no text box appears as the cursor 334 is moved over therendered content area 332. Thus a user can check the tagging beforesharing the content. The appearance of text box 352 is an example meansto achieve the advantage of checking the tagging of portions of thecontent.

FIG. 3D is a diagram of a user interface 360 for tagging multiplecontents, according to an embodiment. The GUI 360 is displayed on UE 101by tag GUI module 150, as described above for GUI 300. The GUI 360includes a display area 370 where a user can determine content files onthe UE 101 to share tags. The display area 370 includes prompt textinviting the owner to indicate which content files are to share tags,such as the illustrated text “Content files to share tags”.

The display area 370 includes file list area 320 as described above withreference to FIG. 3A. Any file name can be selected, as indicated by aradio button filled with a solid circle, or become or remain unselected,as indicated by a hollow radio button. The display area 370 includesbuttons 312, 314, 316 and 318 as described above. When activated, thetag button 318 causes the tag GUI 150 to tag the selected content fileswith the same tags, except for content portions in fields 244 and 264.

FIG. 4A is a diagram of a user interface 400 for distributing an unknownitem in content, according to an embodiment. The GUI 400 is displayed onUE 101 by tag GUI module 150, as described above for GUI 300. Therendered content area 332, add text button 337, text box 338, contacttagging area 340 with add tag button 342 a and remove tag button 342 band toggle authorize button 342 c, and tag all button 348 a and suggestfiles button 348 b are as described above.

When a portion of the content has been tagged with the “don't know”value, that value appears when the cursor is placed over thecorresponding portion of the rendered content area 322. For example, thevalue “don't know” appears in text box 410 when cursor 334 is placed inthe portion 402 over the helmeted figure in the back row of the choir.

According to some embodiments, extra functionality is offered when thespecial “don't know” value is associated with a portion of the content.One or more contacts can be requested to provide the missing informationabout the item (person or thing) in the portion of the content.

For example, below the text box 410 appears another text box 412 thatpresents the prompting text “Ask contact.” When the user slides thecursor 334 to the text box 412, as shown in FIG. 4A, a display area 420is presented. A list of the user's contacts from which to select, e.g.,from the contact list field 206 of the user profile data structure 200or a local source on the UE 101 a, is presented in the display area 420.One of the listed contacts is highlighted as indicated by the dottedrectangle 424. The highlighted area can be moved up or down on the listby using a pointing device to activate up or down control areas 422 aand 422 b, respectively, as is well known in the art. Note that onechoice is “tagged contacts.” This choice means that all the contactsalready tagged for the contact, if any, will receive the request toidentify the item in the portion of the content tagged with the “don'tknow” value.

When the highlighted tag is the correct one, the choice is accepted,e.g., by positioning the cursor 334 over the highlighted contact andpressing a button on the pointing device, or by touching the highlightedcontact. A message is sent to the contact with at least the portion ofthe content that includes the item to be identified. In someembodiments, tag GUI module 150 on UE 101 a sends the message directlyto the tag GUI module 150 on UE 101 b of the contact selected, or, inother embodiments, indirectly through the extended content tag sharingmodule 160 on social network service 120.

FIG. 4B is a diagram of a user interface 430 for prompting tagging of anunknown item in content, according to an embodiment. The GUI 430 isdisplayed on UE 101 by tag GUI module 150, as described above for GUI300. The rendered content area 332, add text button 337, text box 338,contact tagging area 340 with add tag button 342 a and remove tag button342 b and toggle authorize button 342 c, are as described above.However, the contact that receives this message might not be authorizedto tag the content. In such embodiments, the add text button 337, addtag button 342 and remove tag button 342 b and toggle authorize button342 c are disabled and cannot be activated by this user. This isindicated by omitting the buttons or graying them out or otherwiseindicating their disabled status. To indicate the disabled status inFIG. 4B, the buttons 337, 342 a and 342 b are dotted. The tag all button348 a and suggest files button 348 b are omitted. Disabling GUI activeareas for unauthorized user is an example means of achieving theadvantage of obtaining help from a knowledgeable person who is notrepresented in the content or otherwise not eligible to tag the content.

The recipient of the message is prompted to identify the unknown item inthe portion of the content. For example, the portion of the content isindicated by a highlighted oval 432. In some embodiments, only theportion of the content is rendered in the rendered content area 332.Help tag display area 440 is presented, e.g., adjacent to the portion ofthe content with the unknown item to be identified.

The help tag display area 440 includes prompting text areas 442 a, 442 band 442 c. The person sending the message for help is indicated inprompting text area 442 a; and the question is posed in prompting textarea 44 b. For example, in the illustrated embodiment, prompting textarea 442 a states “Contact Y asks” and prompting text area 442 b states“Who is this?”

A list of the user's contacts from which to select, e.g., from thecontact list field 206 of the user profile data structure 200 or a localsource on the UE 101, is presented in the display area 442 c. One of thelisted contacts is highlighted as indicated by the dotted rectangle 446.The highlighted area can be moved up or down on the list by using apointing device to activate up or down control areas 444 a and 444 b,respectively, as is well known in the art. Note that one choice is“don't know” meaning that this user cannot provide the desired answer.Note that another choice is “other” meaning that the identifier is not acontact ID.

If the user chooses “other” then the user is presented with a text box(not shown) in which the user can type text. This is useful foridentifying a thing or activity in the portion of the content, oridentifying a person who is known to the user but is not a socialnetwork contact of the user, such as a celebrity or casual acquaintance.

When the highlighted tag is the correct one, the choice is accepted,e.g., by positioning the cursor 334 over the highlighted contact andpressing a button on the pointing device, or by touching the highlightedcontact. The next GUI depicted in FIG. 4C is then presented to the userwho received the request message.

FIG. 4C is a diagram of a user interface 450 for tagging of an unknownitem in content, according to an embodiment. The GUI 430 is displayed onUE 101 by tag GUI module 150, as described above for GUI 300. Therendered content area 332, add text button 337, text box 338, contacttagging area 340 with add tag button 342 a and remove tag button 342 band toggle authorize button 342 c, are as described above for FIG. 4B.Send help display area 450 is presented, e.g., adjacent to the portionof the content with the item to be identified.

The send help display area 450 includes prompting text areas 442 a, 442b and 442 c, as described above for FIG. 4B. The send help display area450 also includes prompting text areas 452 a and 452 b. Prompting textarea 452 a indicates how the user has identified the item in the portion432 of the content. For example, in the illustrated embodiment, theprompting text area 452 a indicates that the user has identified theitem in the portion 432 of the content as contact Q. Prompting text area452 b asks the user whether to send the response to the requestingcontact and provides a yes button 454 a and a no button 454 b. Forexample the prompting text area 452 b in the illustrated embodiment asks“Send?”

If the user activates the no button 454 b, then the user is returned toGUI 430 depicted in FIG. 4B. If the user activates the yes button 454 a,then a message is sent to the tag GUI 150 on the UE 101 a of contact Y,either directly, in some embodiments, or indirectly through the extendedcontent tag sharing module 160 on social network service 120 in otherembodiments. Thus, a user can get help tagging content without having tobe in the same room with the persons who might know how to identify anunknown item. The GUI 430 and 450 are example means of achieving theadvantage of obtaining tagging help for unknown items from a person notin the same room as the requesting user.

FIG. 5A and FIG. 5B comprise a flowchart of a process 500 for expandedcontent tag sharing, according to one embodiment. In one embodiment, theextended content tag sharing module 160 performs the process 500 using atag GUI in a browser 107; and module 160 is implemented in, forinstance, a chip set including a processor and a memory as shown FIG. 8or computer system depicted in FIG. 7. In one embodiment, the tag GUI150 performs the process 500 and is implemented in, for instance, a chipset including a processor and a memory as shown FIG. 8 or mobileterminal depicted in FIG. 9. In some embodiments, the steps of process500 are distributed between the extended content tag sharing module 160and the tag GUI module 150. To simplify the description, the processwill be narrated as if the steps were performed by the module 160 on asocial network service 120.

Although steps are shown in FIG. 5A and FIG. 5B, and in subsequent flowchart FIG. 6, as integral steps in a particular order for purposes ofillustration, in other embodiments one or more steps, or portionsthereof, are performed in a different order, or overlapping ii time,performed in series or parallel, or are omitted, or additional steps areadded, or the process is changed in some combination of ways.

In step 501, a message is received that indicates a user is to sharecontent owned by the user, such as one or more audio files, video filesor image files. For example, the user issues a command on an operatingsystem of UE 101 a to cause the tag GUI module 150 to be executed andselects a tag GUI option to share photographs. As another example, thebrowser 107 receives user input that causes the browser to access a pageon a network service 110 and selects an option presented on that page,such as an option to upload photographs to a home page of social networkservice 120.

In step 503 the user is prompted to indicate one or more content filesand a tag option. For example, the tag GUI module 150 generates andpresents GUI 300 (depicted in FIG. 3A described above), either on itsown, in some embodiments, or, in other embodiments, within browser 107in response to HTTP messages from the extended content tag sharingmodule 160 of the social network service 120.

In step 505, it is determined whether a response is received from theuser. For example, it is determined whether the upload button 317 in GUI300 has been activated. If not activated, other processing is resumed,such as running other applications or detecting an end process commandand ending the process. After a delay, control is returned to step 505to determine if a response to the prompt has been received. If whether aresponse is received from the user, control passes to step 507.

In step 507, the selected content files for sharing are recorded withmetadata in one or more user content fields 210, either locally in someembodiments, or, in the illustrated embodiment, in the user profile datastructure 200.

In step 509, it is determined whether a tag option has been selected bythe user. For example, it is determined whether the tag button 318 inGUI 300 has been activated. If not activated, the process 500 ends. Ifthe tag option is selected, then, in step 511 the next content file ofthe selected content files is rendered on the user device, e.g., inrendered content area 332 of GUI 330 described above with reference toFIG. 3B. If no other content files have yet been rendered for tagging,then the first of the selected set of content files is rendered (e.g.,the file with file name 322 b is rendered).

In step 513, the user is prompted to indicate a text item identifier(such as text of the name of a person who is not a contact) to beassociated with the content file rendered in step 511, and any portionof the content to be associated with the text item identifier. Forexample, the add text button 337, text box 338, tagged contacts area 340and content portion 335 around cursor 334 in GUI 330 are presented tothe user.

In step 515, the user is prompted to indicate a contact to be associatedwith the content file rendered in step 511, and any portion of thecontent to be associated with the contact. For example, the taggedcontact display area 340, with the add tag button 342 a, remove tagbutton 342 b and toggle authorize button 342 c, and the select contactdisplay area 344 in GUI 330 are presented to the user.

In step 517, it is determined whether text is received. The text orother item identifier is received into text box 338 and activation ofthe add button 337 is detected. In step 519 the text, and any portion ofthe content, is recorded in the metadata for the content file. Forexample, data indicating the text in the text box 338 is inserted intoone of text field 236 or text field 256 in the content metadata datastructure 221 for the content file. If a portion 335 of the renderedcontent has been selected, then data indicating that portion is includedin a content portion field 237 or 257 within the text field 236 or 256,respectively.

In step 521, it is determined whether a contact is received. Contactsare added from the user's contact list (e.g., in field 206 in the userprofile data structure 200) by moving the highlighted area 346 andindicating a choice, e.g., by detecting activation of the add tag button342 a. Contacts are removed from the list of tagged contacts by movingthe highlighted area 346 and indicating a choice, e.g., by detectingactivation of the remove tag button 342 a. Contacts are changed fromauthorized to unauthorized for further tagging by moving a highlightedarea in the list of tagged contacts area 340 and detecting activation ofthe toggle authorize button 342 c. In step 523 the contact, and anyauthorization data, and any portion of the content, is recorded in themetadata for the content file, e.g., in tagged contact fields 240 or260.

Thus step 521 determines that data that indicates a contact (a firstuser) is associated on an apparatus with a content identifier thatindicates content provided by the owner (a different second user). Step523 causes, at least in part, actions that result in recording, on theapparatus, authorization data that indicates the contact (first user) isauthorized to associate on the apparatus a different third user with thecontent identifier, without further input by the second user. Because insome embodiments the text or contact is stored with portion data infield 244 or 264 indicating a portion of the content, steps 519 and 523cause, at least in part, actions that result in associating on the localor remote apparatus the item identifier that indicates the identifier(text or contact) with portion data that indicates the portion of thecontent. The item identifier is at least one of data that identifies thenew contact (third user) or text that describes the portion of thecontent that is rendered.

In step 525 it is determined if neither text nor contacts have beenreceived. Any method may be used to determine that neither text norcontacts have been received, e.g., after a given time without input, orupon the user pressing the tag all button 348 a or suggest files button348 b without having entered data in text box 338 or tagged contactsdisplay area 340. If neither, then no tagging has been done and controlpasses to step 561 to get the next content file in the group to beuploaded, as described in more detail below. After step 523, or after itis determined in step 525 that at least text has been received, controlpasses to step 527.

In step 527, it is determined whether an item has been tagged as anunknown, e.g., an unknown contact. If so, then in step 529 the user isprompted to send at least a portion 402 of the content associated withthe unknown tag to a known contact. For example, the tag GUI module 150generates and presents the text box 412 of GUI 400 (depicted in FIG. 4Adescribed above), either on its own, in some embodiments, or, in otherembodiments, within browser 107 in response to HTTP messages from theextended content tag sharing module 160 of the social network service120. Step 529 includes determining the user selection of a contact fromwhom to request an identifier for the unknown item. For example, theuser selection of contact B in highlighted area 424 is detected when theuser positions the cursor in the select contact display area 420. Insome embodiments, the default contact from whom to request an identifierfor the unknown item is every contact already included in the taggedcontacts display area 340, represented by the “tagged contacts” choicein select contact display area 420.

Step 529 includes sending a message that indicates the portion 402 andthe user to the selected contact, prompting the selected contact torespond as described below with reference to a process depicted in FIG.6 and described in more detail below. For example, during step 529 thetag GUI module 150 on UE 101 a sends a message to the tag GUI module 150on UE 101 b, either directly or indirectly through the extended contenttag sharing module 160 in social network service 120. The tag GUI module150 on UE 101 b prompts the user of UE 101 b to identify the unknownitem, e.g., by displaying GUI 430 depicted in FIG. 4B, described above,and GUI 450 depicted in FIG. 4C, described above.

In step 531, it is determined whether an identifier for the unknown itemor items have been provided, e.g., in a message received at tag GUImodule 150 on UE 101 a from the tag GUI module 150 on UE 101 b, eitherdirectly or through the extended content tag sharing module 160 insocial network service 120. For example, a message is received fromselected contact B that indicates the person in portion 402 is contact Q(possibly a contact of the selected contact 13 and not a contact of theuser of UE 101 a). If so, then, in step 533, the identifier for theunknown item is recorded with the metadata for the content, e.g., in thetext field 236 or 258 for an identifier that is not a subscriber of thesocial network or a contact of the user, or in the tagged contact field240 or 260. In some embodiments, the portion 402 of the content isindicated by data stored in the content portion field 244 or 264.

After step 533, or if it is determined in step 531 that an identifier isnot provided for an unknown item, control passes to steps afterconnector 550, depicted in FIG. 5B.

In step 551, the user is prompted to indicate, among the group ofcontent files to be shared, which contents are to share tags. Thus, thecontent identifier that indicates the content provided by the owner(second user) further comprises data that indicates a plurality ofcontents provided by the second user. For example, the tag GUI module150 generates and presents GUI 350 (depicted in FIG. 3C describedabove), either on its own, in some embodiments, or, in otherembodiments, within browser 107 in response to HTTP messages from theextended content tag sharing module 160 of the social network service120. GUI 350 includes the tag all button 348 a and the suggest filesbutton 348 b. When the user is finished tagging the current content filewith text or one or more contacts of the user, the user activates thetag all button 348 a or the suggest files button. The tag GUI module 150detects the user's selection and presents the next GUI, either on itsown or in response to HTTP messages exchanged with the extended contenttag sharing module 160 of the social network service 120. For example,the tag GUI module 150 on UE 101 a presents GUI 360 depicted in FIG. 360and described above.

The GUI 360 includes a display area 370 where a user can determinecontent files on the UE 101 to share current tags. The display area 370includes prompt text inviting the owner to indicate which content filesare to share tags, such as the illustrated text “Content files to sharetags”. The display area 370 includes file list area 320 (with file nameareas 322 a through 322 e, scroll bar 326 and radio buttons 324) andbuttons 312, 314, 316, and 318 as described above with reference to GUI300 in FIG. 3A.

In step 553, it is determined whether the user has requested asuggestion for which files to share tags. For example, it is determinedwhether the suggest files button 348 b has been activated. If so, thenin step 555 the content files within the group being uploaded areexamined to automatically determine which content files are likely to berelevant to the tags just added to the current content. Any method maybe used to determine the relevant content files. For example, in someembodiments, content files are suggested that were generated within alimited time window or within a limited spatial area, or somecombination, based on the data in metadata field 226. In someembodiments, only content files of the same type (image or audio orvideo or game data or other data) are suggested. In other embodiments,content files of one or more different types are also suggested. In someembodiments, content files outside the group selected for upload aresuggested, such as content files of a different type, or content filesowned by one of the tagged contacts or a contact that belongs to one ormore of the same groups of the user and generated in the same time andspace window as the tagged file. The selected or suggested files areindicated in GUI 360 by the filled radio buttons (e.g., the buttons forcontent files with file name 322 b, 322 c and 322 e). Thus, in step 555,on the local apparatus UE 101 or remote apparatus hosting social networkservice 120, the plurality of contents provided by the owner (seconduser) are determined based on context data associated with each contentof the plurality of contents.

In step 557, it is determined whether the user has issued a tag command.For example, it is determined whether the tag button 318 has beenactivated. If so, then in step 559, the metadata for the current contentfile are shared with the metadata for the other content files indicated.For example, any data in the tag fields of the metadata for the currentcontent are copied into corresponding fields of the metadata for theselected content files. In some embodiments, the sharing is both ways;and, any data in tag fields already in the metadata for any selectedcontent file but not in the metadata for the current content file areadded to the metadata for the current content file and to the metadatafor any other selected content files that are missing the data in acorresponding tag field. In these embodiments, the tag field metadata isuniform across all the selected content files.

In step 561, it is determined whether there is another file in the groupto be uploaded to tag, such as a content file in the group that was notselected after prompting in step 551. In some embodiments, the next fileincludes the next content file not already viewed, even if taggeduniformly with a previously viewed content file. If so, then controlpasses back to step 511 and following to process the next content filein the group. If there are no other content files in the group, controlpasses to step 563.

In step 563, the tagged contacts are authorized to further tag contentfor the group of content files to be shared. For example, in someembodiments all tagged contacts in the metadata for a content file areautomatically authorized to further tag the content file. In someembodiments only tagged contacts in the metadata for a content file withthe authorized contact flag field 241 or 261 set to a particular valueare authorized to further tag the content file. In some embodiments,authorization is toggled during step 563 using the toggle authorizebutton 432 c in GUI 350 depicted in FIG. 3C described above.

In step 571, the tagged contacts are notified that they have been taggedin a group of content files. For example, messages are sent to tag GUImodule 150 on UE 101 b that the user of UE 101 b has been tagged inmetadata 134 for content 132, either directly by tag GUI module 150 onUE 101 a, in some embodiments, or indirectly through extended contenttag sharing module 160 in social network service 120, in otherembodiments.

In some embodiments, step 571 represents the first step of the process500. For example, the tag GUI module 150 on UE 101 b starts in step 571by presenting GUI 350 to the user of UE 101 b upon notification that theuser of UE 101 b is tagged in the content 132, and presents content 132in the rendered content area 332. The tagged contact sees all the taggedcontacts in display area 340, including himself or herself. The user ofUE 101 b sees the text for the content in field 338 and any text orcontacts for individual portions of the content by moving the cursor 334around the rendered content area 332.

In step 573, it is determined whether the tagged contact is requestingto tag the content further. If not, then in step 575 other processing isdone by the tag GUI, in some embodiments; or by the extended content tagsharing module 160 in social network service 120, in other embodiments,

If the tagged contact is requesting to tag the content further, then instep 577, the tagged contact is considered the current user, unless thetagged contact is determined to be not authorized to further tag thecontent based on a particular value in the authorized contact flag field241 or 261. The next content file to be tagged by the tagged contact isdetermined, e.g., the first content file in the group that shares tagsthat include the tagged contact. Control then passes back to step 511 topresent the content and prompts, as described above to the authorizedcontact, who is not the owner of the content.

Thus the method causes, at least in part, actions that result inrendering at least a portion of the content on user apparatus of thecontact (first user) during the next pass through step 511 and promptingthe contact (first user) for associating with the portion of thecontent, an identifier, such as text or another contact ID during thenext pass through step 513 and step 515. If the user apparatus, e.g.,tag GUI module 150 on UE 101 b, receives an item identifier thatindicates the identifier (e.g., in step 517 or step 521), then theprocess 500 causes, at least in part, actions that result in associatingon the apparatus the item identifier with the content identifier thatindicates the content in either step 519 or step 523. Furthermore, ifthe user apparatus (e.g., UE 101 a) receives portion data that indicatesthe different portion of the content, and the receives the contact, thenthe method causes in step 513 and 515, at least in part, actions thatresult in rendering the different portion on an apparatus of the contact(e.g., on UE 101 b), and prompting the contact for associating, with thedifferent portion of the content, an item identifier for the differentportion of the content.

When step 529 to deal with an unknown item is repeated for an authorizedcontact who is not the owner, the method causes, at least in part,actions that result in prompting the contact (first user) forassociating with a different portion of the content a new contact towhom to send the different portion of the content.

FIG. 6 is a flowchart of a process 600 for sharing the tagging of anunknown item, according to one embodiment. In one embodiment, theextended content tag sharing module 160 performs the process 5600 usinga tag GUI module 150 in a browser 107; and module 160 is implemented in,for instance, a chip set including a processor and a memory as shownFIG. 8 or computer system depicted in FIG. 7. In one embodiment, the tagGUI module 150 performs the process 600 and is implemented in, forinstance, a chip set including a processor and a memory as shown FIG. 8or mobile terminal depicted in FIG. 9. In some embodiments steps aredistributed between the modules 150 and 160. To simplify thedescription, the process will be narrated as if the steps were performedby the module 160 on a social network service 120.

In step 601 a request is received from a contact of the user to identifyan unknown item in some content generated by the contact. For example,tag GUI module 150 on UE 1016 of contact B receives the message sent bythe tag GUI module 150 on UE 101 a of contact Y during step 529,described above, as a result of the prompt depicted in GUI 400 of FIG.4A. Thus step 601 determines, on an apparatus (e.g., UE 101 b), amessage is received from an apparatus of a first user (e.g., UE 101 a),wherein the message comprises portion data that indicates a portion ofcontent associated with the first user and data that indicates a seconduser (user of UE 101 b).

In step 603 the content indicated in the message and correspondingmetadata is downloaded to the local device, e.g., either directly fromtag GUI module 150 on UE 101 a, in some embodiments, or indirectly fromuser profile data structure 122 through extended content tag sharingmodule 160 in social network service 120, in other embodiments. Themetadata includes a field 244 or 264 that holds portion data thatindicates a portion of the content and a contact ID field 242 or 262,respectively, that holds a value indicating that an item is unknown.

In step 605 the content is rendered on the user device. In step 607, theuser is prompted to identify the unknown item in an associated portionof the content. For example, the tag GUI module 150 on UE 101 b presentsGUI 430 with the content rendered in the rendered content area 332 andprompts presented in display area 440 adjacent to the portion 432 of thecontent with the unknown item. In some embodiments, only the portion 432is rendered in the area 332; and, in some of these embodiments, theportion 432 is expanded in size within area 332 to better draw theuser's attention. Thus, in some embodiments, the portion of the contentrendered on the user apparatus of the contact (first user) is a portionthat is less than all the content. Because the portion was indicated inthe metadata provided by a different user and downloaded during step605, the portion of the content rendered on the user apparatus of thecontact (first user) is determined based on input from a user differentfrom the first user.

Thus, steps 605 and 607 cause, at least in part, actions that result inrendering the portion of the content on an apparatus of the second user,and prompting the second user for associating, with the portion datathat indicates the portion of the content, an item identifier thatindicates an identifier for the portion of the content.

The display area 440 includes prompt fields 442 a, 442 b and 442 c. Theappropriate response is selected from the list of choices in area 442 c,including “don't know”, one or more contacts of the user, e.g., from theuser's contact list, either local or in the user's profile 122 on thesocial network service 120, or “other.” The response “other” indicatesthat text will be entered in text box 338 and causes the tag GUI module150 to enable the add text button 337 and text box 338.

In step 611, it is determined whether text is received, e.g. whether theuser has selected other and entered text in the text box 338. The textor other item identifier is received into text box 338 and activation ofthe add button 337 is detected. In step 613, the text is associated withthe portion 432 of the content.

In step 615, it is determined whether a contact is received. Contactsare added from the user's contact list (e.g., in field 206 in the userprofile data structure 200) by moving the highlighted area 446 andindicating a choice, e.g., by detecting the pressing of a key or screenarea on a pointing device. In step 617, the contact is associated withthe portion 432 of the content.

Thus in step 613 or in step 617, the identifier for the differentportion of the content is at least one of data that identifies the newcontact (third user) or text that describes the different portion of thecontent that is rendered on the apparatus of the current contact.

In step 621 it is determined if neither text nor contacts have beenreceived. Any method may be used to determine that neither text norcontacts have been received, e.g., after a given time without input, orupon the user selecting the “don't know” choice. If neither text norcontacts are received, then no identifying has been done and the processends. In some embodiments, a “don't know” response message is sent tothe tag GUI module 150 of UE 101 a. After step 617 or after it isdetermined in step 621 that at least text has been received, controlpasses to step 623.

In step 623 the identifier for the unknown item is sent to theauthorized user. For example, GUI 450 depicted in FIG. 4C describedabove, is presented to the requested contact. Upon detecting activationof the yes button 454 a, a message is sent to the user (e.g., contact Y)who is authorized to tag the content. Thus, if the apparatus of thesecond user (e.g., UE 101 b) receives portion data that indicates theidentifier for the portion of the content, then causing, at least inpart, actions that result in sending the item identifier that indicatesthe identifier to the apparatus of the first user (e.g., UE 101 a).

In step 625 the metadata for the content is updated with an identifierprovided by the requested contact (e.g., identifier “contact Q” providedby contact B). The suggested tag is presented to the authorized user,e.g., in GUI 350 depicted in FIG. 3C, described above. The authorizeduser sees the response (e.g., contact Q) in the list of tagged contactsarea 340. If the authorized user moves the cursor 334 over the helmetedfigure, the tag “Contact Q” will be displayed in a text box 352 insteadof “don't know.” If text is provided instead of a contact, then the textis presented in the text box 352. For example, the text box will presentthe text “Sport star X” who is not a contact of the authorized user orof the requested contact (e.g., contact B). The authorized user can thenaccept the tag or remove it, as described above.

The processes described herein for providing expanded content tagsharing may be advantageously implemented via software, hardware,firmware or a combination of software and/or firmware and/or hardware.For example, the processes described herein, including for providinguser interface navigation information associated with the availabilityof services, may be advantageously implemented via processor(s), DigitalSignal Processing (DSP) chip, an Application Specific Integrated Circuit(ASIC), Field Programmable Gate Arrays (FPGAs), etc. Such exemplaryhardware for performing the described functions is detailed below.

FIG. 7 illustrates a computer system 700 upon which an embodiment of theinvention may be implemented. Although computer system 700 is depictedwith respect to a particular device or equipment, it is contemplatedthat other devices or equipment (e.g., network elements, servers, etc.)within FIG. 7 can deploy the illustrated hardware and components ofsystem 700. Computer system 700 is programmed (e.g., via computerprogram code or instructions) to expand content tag sharing as describedherein and includes a communication mechanism such as a bus 710 forpassing information between other internal and external components ofthe computer system 700. Information (also called data) is representedas a physical expression of a measurable phenomenon, typically electricvoltages, but including, in other embodiments, such phenomena asmagnetic, electromagnetic, pressure, chemical, biological, molecular,atomic, sub-atomic and quantum interactions. For example, north andsouth magnetic fields, or a zero and non-zero electric voltage,represent two states (0, 1) of a binary digit (bit). Other phenomena canrepresent digits of a higher base. A superposition of multiplesimultaneous quantum states before measurement represents a quantum bit(qubit). A sequence of one or more digits constitutes digital data thatis used to represent a number or code for a character. In someembodiments, information called analog data is represented by a nearcontinuum of measurable values within a particular range. Computersystem 700, or a portion thereof, constitutes a means for performing oneor more steps of expanded content tag sharing.

A bus 710 includes one or more parallel conductors of information sothat information is transferred quickly among devices coupled to the bus710. One or more processors 702 for processing information are coupledwith the bus 710.

A processor (or multiple processors) 702 performs a set of operations oninformation as specified by computer program code related to expandedcontent tag sharing. The computer program code is a set of instructionsor statements providing instructions for the operation of the processorand/or the computer system to perform specified functions. The code, forexample, may be written in a computer programming language that iscompiled into a native instruction set of the processor. The code mayalso be written directly using the native instruction set (e.g., machinelanguage). The set of operations include bringing information in fromthe bus 710 and placing information on the bus 710. The set ofoperations also typically include comparing two or more units ofinformation, shifting positions of units of information, and combiningtwo or more units of information, such as by addition or multiplicationor logical operations like OR, exclusive OR (XOR), and AND. Eachoperation of the set of operations that can be, performed by theprocessor is represented to the processor by information calledinstructions, such as an operation code of one or more digits. Asequence of operations to be executed by the processor 702, such as asequence of operation codes, constitute processor instructions, alsocalled computer system instructions or, simply, computer instructions.Processors may be implemented as mechanical, electrical, magnetic,optical, chemical or quantum components, among others, alone or incombination.

Computer system 700 also includes a memory 704 coupled to bus 710. Thememory 704, such as a random access memory (RAM) or other dynamicstorage device, stores information including processor instructions forexpanded content tag sharing. Dynamic memory allows information storedtherein to be changed by the computer system 700. RAM allows a unit ofinformation stored at a location called a memory address to be storedand retrieved independently of information at neighboring addresses. Thememory 704 is also used by the processor 702 to store temporary valuesduring execution of processor instructions. The computer system 700 alsoincludes a read only memory (ROM) 706 or other static storage devicecoupled to the bus 710 for storing static information, includinginstructions, that is not changed by the computer system 700. Somememory is composed of volatile storage that loses the information storedthereon when power is lost. Also coupled to bus 710 is a non-volatile(persistent) storage device 708, such as a magnetic disk, optical diskor flash card, for storing information, including instructions, thatpersists even when the computer system 700 is turned off or otherwiseloses power.

Information, including instructions for expanded content tag sharing, isprovided to the bus 710 for use by the processor from an external inputdevice 712, such as a keyboard containing alphanumeric keys operated bya human user, or a sensor, A sensor detects conditions in its vicinityand transforms those detections into physical expression compatible withthe measurable phenomenon used to represent information in computersystem 700. Other external devices coupled to bus 710, used primarilyfor interacting with humans, include a display device 714, such as acathode ray tube (CRT) or a liquid crystal display (LCD), or plasmascreen or printer for presenting text or images, and a pointing device716, such as a mouse or a trackball or cursor direction keys, or motionsensor, for controlling a position of a small cursor image presented onthe display 714 and issuing commands associated with graphical elementspresented on the display 714. In some embodiments, for example, inembodiments in which the computer system 700 performs all functionsautomatically without human input, one or more of external input device712, display device 714 and pointing device 716 is omitted.

In the illustrated embodiment, special purpose hardware, such as anapplication specific integrated circuit (ASIC) 720, is coupled to bus710. The special purpose hardware is configured to perform operationsnot performed by processor 702 quickly enough for special purposes.Examples of application specific ICs include graphics accelerator cardsfor generating images for display 714, cryptographic boards forencrypting and decrypting messages sent over a network, speechrecognition, and interfaces to special external devices, such as roboticarms and medical scanning equipment that repeatedly perform some complexsequence of operations that are more efficiently implemented inhardware.

Computer system 700 also includes one or more instances of acommunications interface 770 coupled to bus 710. Communication interface770 provides a one-way or two-way communication coupling to a variety ofexternal devices that operate with their own processors, such asprinters, scanners and external disks. In general the coupling is with anetwork link 778 that is connected to a local network 780 to which avariety of external devices with their own processors are connected. Forexample, communication interface 770 may be a parallel port or a serialport or a universal serial bus (USB) port on a personal computer. Insome embodiments, communications interface 770 is an integrated servicesdigital network (ISDN) card or a digital subscriber line (DSL) card or atelephone modem that provides an information communication connection toa corresponding type of telephone line. In some embodiments, acommunication interface 770 is a cable modem that converts signals onbus 710 into signals for a communication connection over a coaxial cableor into optical signals for a communication connection over a fiberoptic cable. As another example, communications interface 770 may be alocal area network (LAN) card to provide a data communication connectionto a compatible LAN, such as Ethernet. Wireless links may also beimplemented. For wireless links, the communications interface 770 sendsor receives or both sends and receives electrical, acoustic orelectromagnetic signals, including infrared and optical signals, thatcarry information streams, such as digital data. For example, inwireless handheld devices, such as mobile telephones like cell phones,the communications interface 770 includes a radio band electromagnetictransmitter and receiver called a radio transceiver. In certainembodiments, the communications interface 770 enables connection to thecommunication network 105 for expanded content tag sharing with the UE101.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing information to processor 702, includinginstructions for execution. Such a medium may take many forms,including, but not limited to computer-readable storage medium (e.g.,non-volatile media, volatile media), and transmission media.Non-transitory media, such as non-volatile media, include, for example,optical or magnetic disks, such as storage device 708. Volatile mediainclude, for example, dynamic memory 704. Transmission media include,for example, coaxial cables, copper wire, fiber optic cables, andcarrier waves that travel through space without wires or cables, such asacoustic waves and electromagnetic waves, including radio, optical andinfrared waves. Signals include man-made transient variations inamplitude, frequency, phase, polarization or other physical propertiestransmitted through the transmission media. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM,CDRW, DVD, any other optical medium, punch cards, paper tape, opticalmark sheets, any other physical medium with patterns of holes or otheroptically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave, or any other mediumfrom which a computer can read. The term computer-readable storagemedium is used herein to refer to any computer-readable medium excepttransmission media.

Logic encoded in one or more tangible media includes one or both ofprocessor instructions on a computer-readable storage media and specialpurpose hardware, such as ASIC 720.

Network link 778 typically provides information communication usingtransmission media through one or more networks to other devices thatuse or process the information. For example, network link 778 mayprovide a connection through local network 780 to a host computer 782 orto equipment 784 operated by an Internet Service Provider PP). ISPequipment 784 in turn provides data communication services through thepublic, world-wide packet-switching communication network of networksnow commonly referred to as the Internet 790.

A computer called a server host 792 connected to the Internet hosts aprocess that provides a service in response to information received overthe Internet. For example, server host 792 hosts a process that providesinformation representing video data for presentation at display 714. Itis contemplated that the components of system 700 can be deployed invarious configurations within other computer systems, e.g., host 782 andserver 792.

At least some embodiments of the invention are related to the use ofcomputer system 700 for implementing some or all of the techniquesdescribed herein. According to one embodiment of the invention, thosetechniques are performed by computer system 700 in response to processor702 executing one or more sequences of one or more processorinstructions contained in memory 704. Such instructions, also calledcomputer instructions, software and program code, may be read intomemory 704 from another computer-readable medium such as storage device708 or network link 778. Execution of the sequences of instructionscontained in memory 704 causes processor 702 to perform one or more ofthe method steps described herein. In alternative embodiments, hardware,such as ASIC 720, may be used in place of or in combination withsoftware to implement the invention. Thus, embodiments of the inventionare not limited to any specific combination of hardware and software,unless otherwise explicitly stated herein.

The signals transmitted over network link 778 and other networks throughcommunications interface 770, carry information to and from computersystem 700. Computer system 700 can send and receive information,including program code, through the networks 780, 790 among others,through network link 778 and communications interface 770. In an exampleusing the Internet 790, a server host 792 transmits program code for aparticular application, requested by a message sent from computer 700,through Internet 790, ISP equipment 784, local network 780 andcommunications interface 770. The received code may be executed byprocessor 702 as it is received, or may be stored in memory 704 or instorage device 708 or other non-volatile storage for later execution, orboth. In this manner, computer system 700 may obtain application programcode in the form of signals on a carrier wave.

Various forms of computer readable media may be involved in carrying oneor more sequence of instructions or data or both to processor 702 forexecution. For example, instructions and data may initially be carriedon a magnetic disk of a remote computer such as host 782. The remotecomputer loads the instructions and data into its dynamic memory andsends the instructions and data over a telephone line using a modem. Amodem local to the computer system 700 receives the instructions anddata on a telephone line and uses an infra-red transmitter to convertthe instructions and data to a signal on an infra-red carrier waveserving as the network link 778. An infrared detector serving ascommunications interface 770 receives the instructions and data carriedin the infrared signal and places information representing theinstructions and data onto bus 710. Bus 710 carries the information tomemory 704 from which processor 702 retrieves and executes theinstructions using some of the data sent with the instructions. Theinstructions and data received in memory 704 may optionally be stored onstorage device 708, either before or after execution by the processor702.

FIG. 8 illustrates a chip set or chip 800 upon which an embodiment ofthe invention may be implemented. Chip set 800 is programmed to expandcontent tag sharing as described herein and includes, for instance, theprocessor and memory components described with respect to FIG. 7incorporated in one or more physical packages (e.g., chips). By way ofexample, a physical package includes an arrangement of one or morematerials, components, and/or wires on a structural assembly (e.g., abaseboard) to provide one or more characteristics such as physicalstrength, conservation of size, and/or limitation of electricalinteraction. It is contemplated that in certain embodiments the chip set800 can be implemented in a single chip. It is further contemplated thatin certain embodiments the chip set or chip 800 can be implemented as asingle “system on a chip.” It is further contemplated that in certainembodiments a separate ASIC would not be used, for example, and that allrelevant functions as disclosed herein would be performed by a processoror processors. Chip set or chip 800, or a portion thereof, constitutes ameans for performing one or more steps of providing user interfacenavigation information associated with the availability of services.Chip set or chip 800, or a portion thereof, constitutes a means forperforming one or more steps of expanded content tag sharing.

In one embodiment, the chip set or chip 800 includes a communicationmechanism such as a bus 801 for passing information among the componentsof the chip set 800. A processor 803 has connectivity to the bus 801 toexecute instructions and process information stored in, for example, amemory 805. The processor 803 may include one or more processing coreswith each core configured to perform independently. A multi-coreprocessor enables multiprocessing within a single physical package.Examples of a multi-core processor include two, four, eight, or greaternumbers of processing cores. Alternatively or in addition, the processor803 may include one or more microprocessors configured in tandem via thebus 801 to enable independent execution of instructions, pipelining, andmultithreading. The processor 803 may also be accompanied with one ormore specialized components to perform certain processing functions andtasks such as one or more digital signal processors (DSP) 807, or one ormore application-specific integrated circuits (ASIC) 809. A DSP 807typically is configured to process real-world signals (e.g., sound) inreal time independently of the processor 803. Similarly, an ASIC 809 canbe configured to performed specialized functions not easily performed bya more general purpose processor. Other specialized components to aid inperforming the inventive functions described herein may include one ormore field programmable gate arrays (FPGA) (not shown), one or morecontrollers (not shown), or one or more other special-purpose computerchips.

In one embodiment, the chip set or chip 800 includes merely one or moreprocessors and some software and/or firmware supporting and/or relatingto and/or for the one or more processors.

The processor 803 and accompanying components have connectivity to thememory 805 via the bus 801. The memory 805 includes both dynamic memory(e.g., RAM, magnetic disk, writable optical disk, etc.) and staticmemory (e.g., ROM, CD-ROM, etc.) for storing executable instructionsthat when executed perform the inventive steps described herein toexpand content tag sharing The memory 805 also stores the dataassociated with or generated by the execution of the inventive steps.

FIG. 9 is a diagram of exemplary components of a mobile terminal (e.g.,handset) for communications, which is capable of operating in the systemof FIG. 1, according to one embodiment. In some embodiments, mobileterminal 901, or a portion thereof, constitutes a means for performingone or more steps of expanded content tag sharing. Generally, a radioreceiver is often defined in terms of front-end and back-endcharacteristics. The front-end of the receiver encompasses all of theRadio Frequency (RF) circuitry whereas the back-end encompasses all ofthe base-band processing circuitry. As used in this application, theterm “circuitry” refers to both: (1) hardware-only implementations (suchas implementations in only analog and/or digital circuitry), and (2) tocombinations of circuitry and software (and/or firmware) (such as, ifapplicable to the particular context, to a combination of processor(s),including digital signal processor(s), software, and memory(ies) thatwork together to cause an apparatus, such as a mobile phone or server,to perform various functions). This definition of “circuitry” applies toall uses of this term in this application, including in any claims. As afurther example, as used in this application and if applicable to theparticular context, the term “circuitry” would also cover animplementation of merely a processor (or multiple processors) and its(or their) accompanying software/or firmware. The term “circuitry” wouldalso cover if applicable to the particular context, for example, abaseband integrated circuit or applications processor integrated circuitin a mobile phone or a similar integrated circuit in a cellular networkdevice or other network devices.

Pertinent internal components of the telephone include a Main ControlUnit (MCU) 903, a Digital Signal Processor (DSP) 905, and areceiver/transmitter unit including a microphone gain control unit and aspeaker gain control unit. A main display unit 907 provides a display tothe user in support of various applications and mobile terminalfunctions that perform or support the steps of expanded content tagsharing. The display 907 includes display circuitry configured todisplay at least a portion of a user interface of the mobile terminal(e.g., mobile telephone). Additionally, the display 907 and displaycircuitry are configured to facilitate user control of at least somefunctions of the mobile terminal. An audio function circuitry 909includes a microphone 911 and microphone amplifier that amplifies thespeech signal output from the microphone 911. The amplified speechsignal output from the microphone 911 is fed to a coder/decoder (CODEC)913.

A radio section 915 amplifies power and converts frequency in order tocommunicate with a base station, which is included in a mobilecommunication system, via antenna 917. The power amplifier (PA) 919 andthe transmitter/modulation circuitry are operationally responsive to theMCU 903, with an output from the PA 919 coupled to the duplexer 921 orcirculator or antenna switch, as known in the art. The PA 919 alsocouples to a battery interface and power control unit 920.

In use, a user of mobile terminal 901 speaks into the microphone 911 andhis or her voice along with any detected background noise is convertedinto an analog voltage. The analog voltage is then converted into adigital signal through the Analog to Digital Converter (ADC) 923. Thecontrol unit 903 routes the digital signal into the DSP 905 for,processing therein, such as speech encoding, channel encoding,encrypting, and interleaving. In one embodiment, the processed voicesignals are encoded, by units not separately shown, using a cellulartransmission protocol such as global evolution (EDGE), general packetradio service (GPRS), global system for mobile communications (GSM),Internet protocol multimedia subsystem (IMS), universal mobiletelecommunications system (UMTS), etc., as well as any other suitablewireless medium, e.g., microwave access (WiMAX), Long Term Evolution(LTE) networks, code division multiple access (CDMA), wideband codedivision multiple access (WCDMA), wireless fidelity (WiFi), satellite,and the like.

The encoded signals are then routed to an equalizer 925 for compensationof any frequency-dependent impairments that occur during transmissionthough the air such as phase and amplitude distortion. After equalizingthe bit stream, the modulator 927 combines the signal with a RF signalgenerated in the RF interface 929. The modulator 927 generates a sinewave by way of frequency or phase modulation. In order to prepare thesignal for transmission, an up-converter 931 combines the sine waveoutput from the modulator 927 with another sine wave generated by asynthesizer 933 to achieve the desired frequency of transmission. Thesignal is then sent through a PA 919 to increase the signal to anappropriate power level, In practical systems, the PA 919 acts as avariable gain amplifier whose gain is controlled by the DSP 905 frominformation received from a network base station. The signal is thenfiltered within the duplexer 921 and optionally sent to an antennacoupler 935 to match impedances to provide maximum power transfer.Finally, the signal is transmitted via antenna 917 to a local basestation. An automatic gain control (AGC) can be supplied to control thegain of the final stages of the receiver. The signals may be forwardedfrom there to a remote telephone which may be another cellulartelephone, other mobile phone or a land-line connected to a PublicSwitched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile terminal 901 are received viaantenna 917 and immediately amplified by a low noise amplifier (LNA)937. A down-converter 939 lowers the carrier frequency while thedemodulator 941 strips away the RF leaving only a digital bit stream.The signal then goes through the equalizer 925 and is processed by theDSP 905. A Digital to Analog Converter (DAC) 943 converts the signal andthe resulting output is transmitted to the user through the speaker 945,all under control of a Main Control Unit (MCU) 903—which can beimplemented as a Central Processing Unit (CPU) (not shown).

The MCU 903 receives various signals including input signals from thekeyboard 947. The keyboard 947 and/or the MCU 903 in combination withother user input components (e.g., the microphone 911) comprise a userinterface circuitry for managing user input. The MCU 903 runs a userinterface software to facilitate user control of at least some functionsof the mobile terminal 901 to expand content tag sharing. The MCU 903also delivers a display command and a switch command to the display 907and to the speech output switching controller, respectively. Further,the MCU 903 exchanges information with the DSP 905 and can access anoptionally incorporated SIM card 949 and a memory 951. In addition, theMCU 903 executes various control functions required of the terminal. TheDSP 905 may, depending upon the implementation, perform any of a varietyof conventional digital processing functions on the voice signals.Additionally, DSP 905 determines the background noise level of the localenvironment from the signals detected by microphone 911 and sets thegain of microphone 911 to a level selected to compensate for the naturaltendency of the user of the mobile terminal 901.

The CODEC 913 includes the ADC 923 and DAC 943. The memory 951 storesvarious data including call incoming tone data and is capable of storingother data including music data received via, e.g., the global Internet.The software module could reside in RAM memory, flash memory, registers,or any other form of writable storage medium known in the art. Thememory device 951 may be, but not limited to, a single memory, CD, DVD,ROM, RAM, EEPROM, optical storage, or any other non-volatile storagemedium capable of storing digital data.

An optionally incorporated SIM card 949 carries, for instance, importantinformation, such as the cellular phone number, the carrier supplyingservice, subscription details, and security information. The SIM card949 serves primarily to identify the mobile terminal 901 on a radionetwork. The card 949 also contains a memory for storing a personaltelephone number registry, text messages, and user specific mobileterminal settings.

While the invention has been described in connection with a number ofembodiments and implementations, the invention is not so limited butcovers various obvious modifications and equivalent arrangements, whichfall within the purview of the appended claims. Although features of theinvention are expressed in certain combinations among the claims, it iscontemplated that these features can be arranged in any combination andorder.

1-77. (canceled)
 78. A method comprising: determining data thatassociates, on an apparatus, a first user with a content identifier,wherein the content identifier indicates content provided by a differentsecond user; and causing, at least in part, actions that result inrecording authorization data on the apparatus, wherein the authorizationdata indicates the first user is authorized to associate a differentthird user with the content identifier, without further input by thesecond user.
 79. A method of claim 78, wherein the content identifierfurther indicates a plurality of contents provided by the second user.80. A method of claim 79, further comprising determining on a secondapparatus the plurality of contents provided by the second user based oncontext data associated with each content of the plurality of contents.81. A method of claim 80, wherein at least one of the apparatus or thesecond apparatus is an apparatus of a network service.
 82. A method ofclaim 78, further comprising: causing, at least in part, actions thatresult in rendering at least a portion of the content on user apparatusof the first user, and prompting the first user for associating, withthe portion of the content, an item identifier; and if the userapparatus receives the item identifier, then causing, at least in part,actions that result in associating, on the apparatus, the itemidentifier with the content identifier.
 83. A method of claim 82,wherein the portion of the content rendered on the user apparatus of thefirst user is a portion that is less than all the content.
 84. A methodof claim 83, wherein the portion of the content rendered on the userapparatus of the first user is determined based on input from a userdifferent from the first user.
 85. A method of claim 83, whereincausing, at least in part, actions that result in associating the itemidentifier with the content identifier further comprises causing, atleast in part, actions that result in associating the item identifierwith portion data, wherein the portion data indicates the portion of thecontent.
 86. A method of claim 82, further comprising: causing, at leastin part, actions that result in prompting the first user for associatinga contact with a different portion of the content, wherein the contactindicates a contact to whom to send the different portion of thecontent; and if the user apparatus receives data that indicates thedifferent portion of the content and the contact, then causing, at leastin part, actions that result in rendering the different portion on anapparatus of the contact, and prompting the contact for associating,with the different portion of the content, a different item identifierfor the different portion of the content.
 87. A method of claim 82,wherein the item identifier is at least one of data that identifies thethird user or text that describes the portion of the content that isrendered.
 88. A method of claim 86, wherein the different itemidentifier for the different portion of the content is at least one ofdata that identifies the third user or text that describes the differentportion of the content that is rendered on the apparatus of the contact.89. A method comprising: determining, on an apparatus, a messagereceived from an apparatus of a first user, wherein the messagecomprises portion data that indicates a portion of content associatedwith the first user, and data that indicates a second user; and causing,at least in part, actions that result in rendering the portion of thecontent on an apparatus of the second user, and prompting the seconduser for associating, with the portion data, an item identifier, whereinthe item identifier indicates an identifier for the portion of thecontent.
 90. A method of claim 89, further comprising, if the apparatusof the second user receives the item identifier, causing, at least inpart, actions that result in sending the item identifier to theapparatus of the first user.
 91. A method of claim 89, wherein the itemidentifier is at least one of data that identifies a third user in theportion of the content that is rendered or text that describes theportion of the content that is rendered.
 92. An apparatus comprising: atleast one processor; and at least one memory including computer programcode, the at least one memory and the computer program code configuredto, with the at least one processor, cause the apparatus to perform atleast the following, determine data that associates a first user with acontent identifier, wherein the content identifier indicates contentprovided by a different second user; and cause, at least in part,actions that result in recording authorization data, wherein theauthorization data indicates the first user is authorized to associate adifferent third user with the content identifier, without further inputby the second user.
 93. An apparatus of claim 92, wherein the contentidentifier further indicates a plurality of contents provided by thesecond user.
 94. An apparatus claim 93, wherein the plurality ofcontents provided by the second user are determined based on contextdata associated with each content of the plurality of contents.
 95. Acomputer-readable storage medium carrying one or more sequences of oneor more instructions which, when executed by one or more processors,cause an apparatus to at least perform the following steps: determinedata that associates a first user with a content identifier, wherein thecontent identifier indicates content provided by a different seconduser, and cause, at least in part, actions that result in recordingauthorization data, wherein the authorization data indicates the firstuser is authorized to associate a different third user with the contentidentifier, without further input by the second user.
 96. Acomputer-readable storage medium of claim 95, wherein the contentidentifier further indicates a plurality of contents provided by thesecond user.
 97. A computer-readable storage medium of claim 96, theapparatus is further caused to determine on a second apparatus theplurality of contents provided by the second user based on context dataassociated with each content of the plurality of contents.